Traditional ball throwing machines were good at executing repetitive actions but with very limited ability for variations. For example, traditional ball throwing machines can only throw the ball to a fixed position at a time requiring the user or operator to change the settings to target different positions and quite often involved trial and error method to be able to target a specific position.
Other traditional ball throwing machines included set programs that assisted the ball throwing machines to randomly propel to ball in different direction. However as noted earlier, these traditional ball throwing machines again required a user to change the settings to target different position manually and required trial and error techniques to target specific position. Unfortunately, none of these traditional ball throwing machines had the technology to dynamically determine the position of the user and adjust with speed and direction of throwing the ball without requiring user intervention.